import sched

import threading
import os
import random
import time

"""
多线程的设计: 
    import threading
    多线程相比多进程的区别:
        多线程更加轻量化,使得io处理更加迅速
        
    # 面向对象的设计模式
        继承Thread类,重写run()方法
        设置守护进程,thread.setDaemon(True)
    
    # lock模块存在的问题
    上了几次锁就要解锁几次,就很不方便
    于是出现了rLock --- 一次解除所有锁
            
# 调度sched
    安排,指定程序在什么时候去执行,
    这里的调度只能实现时间间隔调度,
    如果是指定时间调度就要配合其他模块
    
           
"""
#


def event_handler(scheduler):
    #              延迟 1s  优先级0, 执行   argument 是包含有 action 的位置参数的序列
    scheduler.enter(delay=1,priority=0,action=event_handler,argument=(scheduler,))
    print(threading.current_thread().name )

def print_time(name):
    print(time.time(),name)


def main():
    print(time.time())
    scheduler = sched.scheduler()  # 全局的调度器
    # scheduler.enter(delay=2,priority=0,action=event_handler,argument=(scheduler,))
    scheduler.enter(delay=2,priority=0,action=print_time,argument=('name',))
    scheduler.run()


if __name__ == '__main__':
    main()